// poj1887
// 题意：求反序列的最长不下降子序列。
//
// 题解：模板题。设d[i]表示长度为i的不下降子序列最后结束的最小值。然后
//       新来的数都进行二分，找到位置，更新d和答案就行。
//
// run: $exec < input
#include <iostream>
#include <algorithm>
#include <vector>

int const  inf = 1 << 30;

int lnds(std::vector<int> const & a)
{
	int ret = 0, n = a.size();
	std::vector<int> d(n + 2, inf);
	for (int i = 0; i < n; i++) {
		int k = std::upper_bound(d.begin() + 1, d.begin() + n + 1, a[i]) - d.begin();
		ret = std::max(ret, k);
		d[k] = std::min(d[k], a[i]);
	}
	return ret;
}

int main()
{
	for (int ti = 1; ; ti++) {
		std::vector<int> v;
		for (int x; std::cin >> x && x != -1; ) v.push_back(x);
		if (v.empty()) break;
		std::reverse(v.begin(), v.end());
		if (ti > 1) std::cout << '\n';
		std::cout << "Test #" << ti << ":\n  maximum possible interceptions: ";
		std::cout << lnds(v) << '\n';
	}
}

